package com.sigmatrix.h5.service;

import java.util.List;

import com.sigmatrix.h5.dto.EnterpriseData;
import com.sigmatrix.h5.entity.Enterprise;
import com.sigmatrix.h5.exception.ServiceException;
import com.sigmatrix.h5.web.vo.EnterpriseNomal;
import com.sigmatrix.h5.web.vo.EnterpriseVo;
import com.sigmatrix.sc.jdbc.common.service.Service;


/**
 * 
 *@ClassName: EnterpriseService
 *@Description: 基础数据企业
 *@author MH
 *@date 2017年11月10日 下午7:20:19
 */
public interface EnterpriseService extends Service<Enterprise, Integer>{
	
	/**
	 * 
	 *@Title: findByBasicModuleId
	 *@Description: 通过基础数据ID查询
	 *@return Enterprise
	 *@author MH
	 *@date 2017年11月14日 下午2:21:14
	 *@param basicModuleId
	 *@return
	 */
	Enterprise findByBasicModuleId(Integer basicModuleId);
	
	/**
	 *@Title: findById
	 *@Description: 根据主键查找企业信息
	 *@return EnterpriseData
	 *@author youjun
	 *@date 2017-08-03 11:01:33
	 *@param id
	 *@return
	 * @throws ServiceException 
	 */
	Enterprise findById(final Integer id);

	/**
	 *@Title: findListByCondition
	 *@Description: 根据条件查询企业信息列表
	 *@return List<EnterpriseData>
	 *@author youjun
	 *@date 2017-08-03 11:01:33
	 *@param enterpriseVo
	 *@return
	 *@throws ServiceException
	 */
	List<EnterpriseData> findListByCondition(final EnterpriseVo enterpriseVo) throws ServiceException;

	/**
	 *@Title: findByEnterpriseCode
	 *@Description: 根据企业code查询企业,<b>找到唯一匹配的企业,若匹配多条将报错</b>
	 *@return EnterpriseData
	 *@author youjun
	 *@date 2017年8月4日 下午2:15:00
	 *@param enterpriseCode
	 *@return
	 *@throws ServiceException
	 */
	EnterpriseData findByEnterpriseCode(String enterpriseCode) throws ServiceException;
	/**
	 * 查询基础企业信息
	 * 
	 * @param enterpriseCode
	 * @return
	 */
	EnterpriseNomal findByNomalByCode(String enterpriseCode);
	
}
